package com.zxl.gulimall.coupon;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;

/**
 * 一、如何使用nacos作为配置中心统一管理配置？
 *  1、引入nacos-config依赖
 *  2、创建一个bootstrap.properties
 *      a、服务名称
 *          spring.application.name=gulimall-coupon
 *      b、服务端口号
 *          spring.cloud.nacos.config.server-addr=localhost:8848
 *   3、在配置中心默认添加一个数据集 （Data Id）gulimall-coupon.properties.默认规则，应用名.properties
 *   4、给应用名.peoperties添加配置
 *   5、使用注解动态获取配置
 *      @RefershScope ：动态获取并刷新配置
 *      @Value ：("${配置项的名}")
 *      如果配置中心和当前应用的配置文件都是用了相同的配置，优先使用配置中心配置。
 * 二、细节
 *  1、命名空间：配置隔离
 *      默认：public（保留空间）默认新增的所有配置都在public空间
 *      a、开发、测试、生产
 *         注意：在bootstra.propreties：配置上，需要使用那个命名空间的配置
 *         spring.cloud.nacos.config.namespace=3481c46a-c7b5-486f-8492-36e8a435884b
 *      b、每一个微服务之间互相隔离，每一个微服务都创建自己的命名空间，只加载自己命名空间下的所有配置
 *  2、配置集：所有配置的集合
 *  3、配置集ID：类似文件名
 *      Data ID：类似文件名
 *  4、配置分组
 *      默认所有配置集都属于：DEFAULT_GROUP
 *
 * 每个微服务创建自己的命名空间，使用配置分组分环境
 *
 * 三、同时加载多个配置集
 *  1、微服务任何配置信息，任何配置文件都可以放在配置中心中
 *  2、只需要在bootstrap.properties中说明加载配置中心的那些配置文件即可
 *  3、@Value，@ConfigurationProPerties...
 *     以前springboot任何方法都可以从配置文件获取值，都能使用。配置中心有的优先使用配置中心的。
 */
@SpringBootApplication
@EnableDiscoveryClient
public class GulimallCouponApplication {

    public static void main(String[] args) {
        SpringApplication.run(GulimallCouponApplication.class, args);
    }

}
